home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Libraries / TurboTCP 1.0.1 / TurboTCP.version.note < prev   
Text File  |  1994-01-19  |  11KB  |  231 lines

  1. /*
  2. **    TurboTCP support library
  3. **
  4. **    Copyright © 1993, FrostByte Design / Eric Scouten
  5. **
  6. **    Version history
  7. */
  8.  
  9. Current version: 1.0.1
  10.  
  11.  
  12. Version history:
  13. --------------
  14.  
  15. 1.0d1 (7 June 93)
  16.   *    initial release
  17.  
  18. 1.0d2 (9 June 93)
  19.   *    created CTCPDriver object to handle primary TCP functions (checking for
  20.       MacTCP, fetching local IP address)
  21.   *    changed inheritance of CTCPStream from CCollaborator to CObject
  22.       since CCollaborator caused problems disposing a stream, and
  23.       CCollaborator methods were unnecessary
  24.   *    fixed bugs in CTCPStream::Dispose and DelayDispose
  25.   *    fixed bugs in CTCPAsyncCall::Dispose
  26.   *    added minimal support for Telnet protocol to CTelnetDoc
  27.  
  28. 1.0d3 (11 June 93)
  29.   *    renamed to TurboTCP library
  30.   *    major structural change: separated core functions into “TurboTCP base classes”
  31.       and TCL support to "TurboTCP adv classes"
  32.   *    removed use of CCollaborator::BroadcastChange() mechanism
  33.   *    created new CTCPSessionDoc class to cover typical session behavior
  34.  
  35. 1.0d4 (16 June 93)
  36.   *    added TCP resolver functions (uses source file “dnr.c” from MacTCP
  37.       Dev Kit, with several mods)
  38.   *    added list of TCP streams to CTCPDriver; this allows the driver to
  39.       dispose of all streams that were accidentally not disposed during
  40.       program operation
  41.   *    changed “inherited::” method calls to specific class references (BRB)
  42.   *    changed class definitions to “class ___ : public ___” notation
  43.       to support TC 6.0 (BRB)
  44.   *    added typecasts to support TC 6.0’s stricter typechecking (BRB)
  45.   *    changed CTCPStream::Dispose to wait until TCP stream is terminated
  46.       before disposing itself
  47.   *    DemoTelnet: implemented dialog box to allow user to choose host
  48.       (CTelnetDoc::NewFile)
  49.  
  50. 1.0d5 (17 June 93)
  51.   *    updated projects to run under TC 6.0
  52.   *    added completion routine for TCPRcv call (CTCPAsyncCall::Dispatch)
  53.   *    changed completion/notification routines so that Failures are trapped
  54.       and the call chain continues (CTCPAsyncCall::ProcessCompletion,
  55.       CTCPResolver::ProcessNotify, CTCPStream::ProcessNotify)
  56.   *    changed CTCPDriver::ProcessNetEvent to re-issue the Failure which
  57.       occured during the above completion/notification routines
  58.  
  59. 1.0d6 (18 June 93)
  60.   *    fixed bug in CTCPResolver which allowed the resolver object
  61.       to be disposed while ProcessNotify was still running
  62.  
  63. 1.0d7 (30 June 93)
  64.   *    renamed source files to “.cp” notation; separated all in-line assembly
  65.       to separate “.asm” files for compatibility with SC++ 6.0
  66.   *    moved ProcessNetEvents to TCPAsync.asm (no longer a method
  67.       of CTCPDriver)
  68.   *    separated interrupt-level code to end of each source file;
  69.       hooks in place for using Think Profiler
  70.   *    fixed incorrect typecasts (byte instead of unsigned short) in
  71.       CTCPStream::NoCopyRcv & CTCPStream::Receive
  72.  
  73. 1.0d8 (5 July 93)
  74.   *    separated TCPAsync.asm into separate .asm and .cp files for SC++
  75.       compatibility (BRB)
  76.   *    fixed bug in CTCPStreamForDoc::SendCString which treated
  77.       strings as Pascal strings
  78.   *    fixed bug in CTCPStream::BfrReturn which allowed buffers to
  79.       be returned after the session closed
  80.   *    deleted “TurboTCP DNR classes” folder; moved items to
  81.       “base classes” and “doc classes” (renamed) folders
  82.   *    filled in CTCPSessionDoc::HandleSendFailed and HandleTerminated;
  83.       both methods now report error messages and ask for responses
  84.   *    changed error handling in CTCPStream; all methods now call the
  85.       HandleTCPError, HandleOpenFailed, or HandleSendFailed methods
  86.       instead of FailOSError (except for initialization)
  87.   *    changed CTCPSessionDoc to allow window to stay open when the
  88.       session is closed
  89.  
  90. 1.0d9 (9 July 93)
  91.   *    fixed bug in CTCPStreamForDoc::SendCString which treated C
  92.       strings as Pascal strings; then got inspired to write a routine
  93.       which sends Pascal strings (CTCPStreamForDoc::SendPString)
  94.   *    added implementation of Telnet TERMINAL-TYPE protocol
  95.       (albeit only with UNKNOWN terminal)
  96.   *    added commands to send the standard Telnet NVT commands
  97.       (Synch, Break, IP, etc.)
  98.   *    made the debugging codes a permanent feature
  99.   *    implemented Telnet settings dialog box
  100.   *    added icons to DemoTelnet application & settings document
  101.   *    implemented Telnet EraseChar & EraseLine commands
  102.   
  103. 1.0d10 (20 July 93)
  104.   *    modified CTCPDriver.cp to reflect the new Apple standard for
  105.       GetMyIPAddr.h type names (i.e., GetAddrParamBlock instead of
  106.       my definition of IPParamBlock) (BRB)
  107.   *    added “dnr.h” file with full prototypes for functions in dnr.cp (BRB)
  108.   *    removed inherited reference in CTCPSessionDoc::Dispose (BRB)
  109.   *    removed HLock calls in CTCPResolver::ITCPResolver and
  110.       CTCPStream::ProcessNotify (BRB)
  111.   *    added code to check for Hosts file in system folder (BRB)
  112.   *    moved SendBfrCpy, SendChar, SendCString, SendPString from
  113.       CTCPStreamForDoc to CTCPStream; added SendBfrNoCpy
  114.   *    modified CTCPAsyncCall::Dispatch so that disposing the data sent
  115.       was optional
  116.  
  117. 1.0d11 (19 August 93)
  118.   *    added several features to DemoTelnet to support add-on applications
  119.   *    DemoTelnet: fixed bug in CTelnetSettingsDLOG which caused
  120.       application to fail continously when Close (Cmd-W) was used
  121.   *    DemoTelnet: cursor is now always visible when the terminal is
  122.       no longer the gopher
  123.   *    changed CTCPSessionDoc::AutoTitle to incorporate display of filename
  124.       and hostname; also to read strings from STR# resources
  125.   *    TCPAsync.asm: several minor optimizations
  126.   *    CTCPAsyncCall, CTCPStream: optimized code in several locations,
  127.       avoiding method lookups whenever possible in the ProcessNetEvents sequence
  128.       (especially for TCPNoCopyRcv operations)
  129.   *    revised auto-receive configuration to permit multiple TCPNoCopyRcv
  130.       commands to be issued simultaneously, with configurable RDS sizes
  131.   *    revised appearance of source files, with better descriptions of some
  132.       function parameters
  133.   *    separated DemoTelnet’s TerminalPane into separate library, and released
  134.       it to FTP sites independent of TurboTCP
  135.  
  136. 1.0b1 (10 September 93)
  137.   *    split CTelnetDoc into CTelnetInterpreter and CTelnetTerminal to support
  138.       Telnet protocol with and without terminal operation; included
  139.       CTelnetInterpreter as part of standard TurboTCP
  140.   *    renamed some source files in DemoTelnet
  141.   *    added safety check code in CTCPSessionDoc::AutoTitle
  142.   *    prevented DemoTelnet from opening wrong file types on open
  143.   *    moved the code to create a MacTCP stream from CTCPStream::ITCPStream
  144.       to OpenConnection to improve stability under certain debugging conditions
  145.   *    fixed bug in CTCPStream which occurred when a stream was disposed with
  146.       a pending PassiveOpen or ActiveOpen call; previously, the stream would go
  147.       into an endless loop waiting for the call to be completed
  148.   *    modified CTCPSessionDoc::HandleClosing to induce a TCPClose call when
  149.       a remote close occurs (even if the goAwayOnClose flag is off)
  150.  
  151. 1.0b2 (26 September 93)
  152.   *    now ignores “connectionDoesntExist” messages when issuing a TCPClose command
  153.   *    wrote near-final documentation
  154.   
  155. 1.0b3 (11 October 93)
  156.   *    renamed DemoTelnet to MiniTelnet, created separate version history file
  157.   *    now ignores “connectionClosing” errors when issuing a TCPClose command
  158.   *    also ignores “connectionClosing & connectionDoesntExist” errors when responding
  159.       to completion of TCPNoCopyRcv commands
  160.   *    forced TCPStream objects to be locked at all times, preventing ASR notification
  161.       from occurring during memory shuffles
  162.   *    removed hard-coded references to data structure sizes
  163.   *    corrected documentation for CTCPAsyncCall::Dispose (no longer disposes of next in chain)
  164.   *    changed /* comments to //
  165.   *    replaced GetNotifLinks (global) with CTCPDriver::GetNotifLink (protected method), which
  166.       reads a single notification link (done to reduce time spent with interrupts disabled)
  167.   *    moved global variables (except gTCPDriver) to static class variables of CTCPDriver
  168.   *    changed notification links to be a part of CTCPDriver (ProcessNetEvents, etc.);
  169.       improved documentation of this feature
  170.   *    fixed bug in CTelnetInterpreter that caused it to read high-ASCII characters (≥0xA0)
  171.       as control characters and hang
  172.   *    changed CTCPStream::ITCPStream to use TCL exceptions mechanism
  173.   *    CTCPDriver now enforces DNR’s limit of 8 simultaneous calls
  174.   *    converted some #define’s to enum’s
  175.  
  176. 1.0b4 (19 October 93)
  177.   *    slight changes in documentation
  178.   *    first public beta release
  179.  
  180. 1.0b5 (25 October 93)
  181.   *    changed methods in .asm files to non-object procedures; done for compatibility with
  182.       SC++ (sigh)
  183.   *    removed static keyword from CTCPStream::NotifyProc definition in source file
  184.   *    used macro CLASS for forward definitions of TCL objects in header files
  185.   *    removed file "dnr.cp"; incorporated functionality into CTCPResolverCall.cp;
  186.       no longer depends on <AddressXlation.h> or <dnr.h>
  187.   *    changed sequence of parameters to CTCPSessionDoc::ITCPSessionDoc to be
  188.       compatible with CDocument::IDocument (printable & rcvBufferSize switched)
  189.   *    #ifdef __cplusplus / extern "C" / #endif constructs added for compatibility
  190.       with Symantec C++
  191.   *    documentation changed to reflect the typical use of CTCPStream (in the subclass
  192.       CTCPStreamForDoc)
  193.   *    changed  CTCPStream::itsStream & itsResolver to public fields, rather than protected
  194.  
  195. 1.0b6 (21 November 93)
  196.   *    allows subclasses of CTCPSessionDoc to set window titles without host or filenames
  197.       by setting both showHostName and showFileName to FALSE (see AutoTitle)
  198.   *    moved code to open “Hosts” file from CTCPResolverCall::ITCPResolverCall to OpenResolver
  199.   *    restructured completion/notification/disposal lists to use Enqueue/Dequeue mechanism;
  200.       removed all .asm files (yea!)
  201.   *    removed CTCPStream::__HandleOpened and __HandleOpenFailed methods
  202.   *    restructured link between CTCPStream/CTCPResolverCall and CTCPSessionDoc to use
  203.       the CCollaborator mechanism for message passing; removed CTCPStreamForDoc
  204.       and CTCPResolverForDoc classes
  205.   *    corrected CTCPApplication::Exit to also call the CApplication::Exit method
  206.  
  207. 1.0b7 (17 December 93)
  208.   *    eliminated itsSupervisor field from CTCPStream and CTCPResolverCall; both classes
  209.       now require the dependent objects to set up the dependency (DependUpon (stream))
  210.   *    CTCPResolver no longer returns the resolverInUseErr message
  211.   *    removed CTCPStream::OwnerDied and CTCPResolver::OwnerDied; those using
  212.       receive bypass procedures must now call CTCPStream::InstallRcvBypassProc(NULL)
  213.       before disposing of the dependent object
  214.   *    adjusted CTCPSessionDoc to reflect above changes
  215.   *    receive bypass procedure target type changed from CDirectorOwner to CObject
  216.   *    CTCPStream::Send, SendBfrCpy, SendBfrNoCpy now ignore attempts to send 0 bytes
  217.   *    replaced CTCPApplication::Exit with ::Quit method, so that event handlers would still be valid;
  218.       added new dialog box describing delay in quitting
  219.   *    added CTCPStream::BroadcastSafeChange method to allow objects to dispose themselves
  220.   *    changed CTCPAsyncCall::DispatchNoCopyRcv to issue _asynchronous_ BfrReturn call
  221.   *    created precompiled headers, cleaned up header dependencies
  222.   *    improved documentation in headers; each class definition is now proceeded by a definition
  223.       of the class’ purpose and relationships to other classes in the library
  224.  
  225. 1.0 final (10 January 94)
  226.   *    minor documentation changes, no source code changes
  227.  
  228. 1.0.1 (19 January 94)
  229.   *    corrected minor bug in CTCPResolverCall::OpenResolver
  230.   *    recompiled MiniTelnet without a certain silly line in Failure() which gauranteed a
  231.       MacsBug crash anytime a minor error occurred